TypedElement was marked as a concrete class UML SuperStructure defines it as an abstract class Class does not have an attribute called isID according to UML SuperStructure body and language must be empty OCL self.language->isEmpty() and self.body->isEmpty() <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>An opaque behavior cannot be active.</BODY></HTML> OCL not self.isActive <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>An owned behavior must be either the classifier behavior of or the method for an operation of its behaviored classifier.</BODY></HTML> OCL self.ownedBehavior->forAll(b:Behavior|b = self.classifierBehavior xor self.allFeatures()->includes(b.specification)) References behavior specifications owned by a classifier. A behavior specification that specifies the behavior of the classifier itself. <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>In this specification, an fUML instance model must have Behavior.isReentrant </BODY></HTML> OCL self.isReentrant Tells whether the behavior can be invoked while it is still executing from a previous invocation. Designates a behavioral feature that the behavior implements. The behavioral feature must be owned by the classifier that owns the behavior or be inherited by it. The parameters of the behavioral feature and the implementing behavior must match. If a behavior does not have a specification, it is directly associated with a classifier (i.e., it is the behavior of the classifier as a whole). References a list of parameters to the behavior which describes the order and type of arguments that can be given when the behavior is invoked and of the values which will be returned when the behavior completes its execution. The classifier that is the context for the execution of the behavior. If the behavior is owned by a BehavioredClassifier, that classifier is the context. Otherwise, the context is the first BehavioredClassifier reached by following the chain of owner relationships. For example, following this algorithm, the context of an entry action in a state machine is the classifier that owns the state machine. The features of the context classifier as well as the elements visible to the context classifier are visible to the behavior. The event that causes the trigger. The attributes owned by the signal. The specific signal that is associated with this event. A reception must not have an associated method.&nbsp; OCL self.method->isEmpty() A reception may not be abstract. OCL not self.isAbstract The signal that this reception handles. States whether the feature's value may be modified by a client. Indicates whether it is possible to further specialize a RedefinableElement. If the value is true, then it is not possible to further specialize the RedefinableElement. The redefinable element that is being redefined by this element. References the contexts that this element may be redefined from. <HTML><HEAD> <META content="MSHTML 6.00.6000.16674" name=GENERATOR></HEAD> <BODY>concurrency must be sequential</BODY></HTML> OCL self.concurrency = CallConcurrencyKind::sequential Specifies the ordered set of formal parameters of this BehavioralFeature. Specifies the ordered set of formal parameters owned by this BehavioralFeature. The parameter direction can be 'in', 'inout', 'out', pr 'return' to specify input, output, or return parameters. If true, then the behavioral feature does not have an implementation, and one must be supplied by a more specific element. If false, the behavioral feature must have an implementation in the classifier or one must be inherited from a more general element. A behavioral description that implements the behavioral feature. There may be at most one behavior for a particular pairing of a classifier (as owner of the behavior) and a behavioral feature (as specification of the behavior). Specifies the semantics of concurrent calls to the same passive instance (i.e., an instance originating from a class with isActive being false). Active instances control access to their own behavioral features. Either all the classifiers are classes, or there is one classifier that is a data type OCL self.classifier->forAll(oclIsKindOf(Class)) or self.classifier->size() = 1 and self.classifier->forAll(oclIsKindOf(DataType)) The classifier or classifiers of the represented instance. If multiple classifiers are specified, the instance is classified by all of them. A slot giving the value or values of a structural feature of the instance. An instance specification can have one slot per structural feature of its classifiers, including inherited features. It is not necessary to model a slot for each structural feature, in which case the instance specification is a partial description. The instance that is the specified value. The specified Boolean value. The specified Integer value. The specified String value. The specified UnlimitedNatural value. new UnlimitedNatural(0) <HTML><HEAD> <META content="MSHTML 6.00.6000.16674" name=GENERATOR></HEAD> <BODY>upperValue must be a LiteralUnlimitedNatural and lowerValue must be a LiteralInteger. Both are required.</BODY></HTML> OCL self.upperValue->notEmpty() and self.upperValue->asSequence()->first().oclIsKindOf(LiteralUnlimitedNatural) and self.lowerValue->notEmpty() and self.lowerValue->asSequence()->first().oclIsKindOf(LiteralInteger) For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered.. For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered. For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique. Specifies the upper bound of the multiplicity interval. Specifies the upper bound of the multiplicity interval, if it is expressed as an unlimited natural. new UnlimitedNatural(1) Specifies the lower bound of the multiplicity interval. Specifies the lower bound of the multiplicity interval, if it is expressed as an integer. The specification of the upper bound for this multiplicity. The specification of the lower bound for this multiplicity. The name of the NamedElement. Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility. A name which allows the NamedElement to be identified within a hierarchy of nested Namespaces. It is constructed from the names of the containing namespaces starting at the root of the hierarchy and ending with the name of the NamedElement itself. <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>If an operation is abstract it must have no method. Otherwise it must have exactly one method.</BODY></HTML> OCL (self.isAbstract and self.method->isEmpty()) xor (not self.isAbstract and self.method->size() = 1) Specifies whether an execution of the BehavioralFeature leaves the state of the system unchanged (isQuery=true) or whether side effects may occur (isQuery=false). Redefines the corresponding property from Basic to derive this information from the return result for this Operation. Specifies whether the return parameter is ordered or not, if present. Redefines the corresponding property from Basic to derive this information from the return result for this Operation. Specifies whether the return parameter is unique or not, if present. Redefines the corresponding property from Basic to derive this information from the return result for this Operation. Specifies the lower multiplicity of the return parameter, if present. Redefines the corresponding property from Basic to derive this information from the return result for this Operation. Specifies the upper multiplicity of the return parameter, if present. The class that owns the operation. The class that owns this operation. References the Operations that are redefined by this Operation. Redefines the corresponding property from Basic to derive this information from the return result for this Operation. Specifies the return result of the operation, if present. Java super.addOwnedMember(nestedPackage); this.nestedPackage.add(nestedPackage); nestedPackage.nestingPackage = this; Indicates whether a parameter is being sent into or out of a behavioral element. References the Operation for which this is a formal parameter. References the Operation owning this parameter. <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>isDerived and isDerivedUnion must be false</BODY></HTML> OCL not self.isDerived and not self.isDerivedUnion If isDerived is true, the value of the attribute is derived from information elsewhere. Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information. This redefines the corresponding attribute in Basic::Property and Abstractions::StructuralFeature. If true, the attribute may only be read, and not written. Specifies whether the property is derived as the union of all of the properties that are constrained to subset it. Specifies the kind of aggregation that applies to the Property. If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute. This is a derived value, indicating whether the aggregation of the Property is composite or not. References the owning association of this property, if any. References the owning association of this property. The DataType that owns this Operation. The DataType that owns this Property. References the association of which this property is a member, if any. The instance specification that owns this slot. The structural feature that specifies the values that may be held by the slot. The value or values corresponding to the defining feature for the owning instance specification. Redefines the corresponding property from Basic to derive this information from the return result for this Operation. The type of the TypedElement. Indicates that the property has no aggregation. Indicates that the property has a shared aggregation. Indicates that the property is aggregated compositely, i.e., the composite object has responsibility for the existence and storage of the composed objects (parts). Indicates that parameter values are passed into the behavioral element by the caller. Indicates that parameter values are passed into a behavioral element by the caller and then back out to the caller from the behavioral element. Indicates that parameter values are passed from a behavioral element out to the caller. Indicates that parameter values are passed as return values from a behavioral element back to the caller. Only active classes may have classifier behaviors. OCL self.classifierBehavior->notEmpty() implies self.isActive Only an active class may specialize an active class. OCL self.parents()->exist(isActive) implies self.isActive Only an abstract class may have abstract behavioral features. OCL self.member->select(oclIsKindOf(BehavioralFeature))->exists(isAbstract) implies self.isAbstract The operations owned by the class. Determines whether an object specified by this class is active or not. If true, then the owning class is referred to as an active class. If false, then such a class is referred to as a passive class. Receptions that objects of this class are willing to accept. This gives the superclasses of a class. If true, the Classifier does not provide a complete declaration and can typically not be instantiated. An abstract classifier is intended to be used by other classifiers e.g. as the target of general metarelationships or generalization relationships. Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy. Redefines the corresponding association in Abstractions. Note that there may be members of the Classifier that are of the type Feature but are not included in this association, e.g. inherited features. Specifies each feature defined in the classifier. Specifies all elements inherited by this classifier from the general classifiers. Refers to all of the Properties that are direct (i.e. not inherited or import fUML.Syntax.d) attributes of the classifier. The Attributes owned by the DataType. The Elements owned by this element. The Element that owns this element. The ordered collection of literals for the enumeration. The ordered set of literals for this Enumeration. The enumeration that this literal belongs to. The Enumeration that this EnumerationLiteral is a member of. <HTML><HEAD> <META content="MSHTML 6.00.6000.16674" name=GENERATOR></HEAD> <BODY>isStatic must be false</BODY></HTML> OCL not self.isStatic Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true). Redefines the corresponding association in Abstractions. The Classifiers that have this Feature as a feature. Indicates whether the specific classifier can be used wherever the general classifier can be used. If true, the execution traces of the specific classifier will be a superset of the execution traces of the general classifier. References the specializing classifier in the Generalization relationship. References the general classifier in the Generalization relationship. <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>An association must own all its memberEnds.</BODY></HTML> OCL self.memberEnd->symmetricDifference(self.ownedEnd)->isEmpty() <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>isDerived must be false</BODY></HTML> OCL not self.isDerived Specifies whether the association is derived from other model elements such as other associations or constraints. The ends that are owned by the association itself. This is an ordered association. The ends that are owned by the association itself. References the classifiers that are used as types of the ends of the association. Each end represents participation of instances of the classifier connected to the end in links of the association. This is an ordered association. Each end represents participation of instances of the classifier connected to the end in links of the association. The navigable ends that are owned by the association itself. References the general classifier in the Generalization relationship. Specifies the general Classifiers for this Classifier. In the case where the property is one navigable end of a binary association with both ends navigable, this gives the other end. Provides input to guard specifications on edges outgoing from the decision node. Structured activity node containing the node. Activity containing the node. Edges that have the node as source. Edges that have the node as target. The parameter the object node will be accepting or providing values for. <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>A guard is only allowed if the source of the edge is a DecisionNode.</BODY></HTML> OCL self.guard->notEmpty() implies self.source.oclIsKindOf(DecisionNode) Activity containing the edge. Node from which tokens are taken when they traverse the edge. Node to which tokens are put when they traverse the edge. Specification evaluated at runtime to determine if the edge can be traversed. Structured activity node containing the edge. import fUML.Syntax.Activities.CompleteStructuredActivities.*; <HTML><HEAD> <META content="MSHTML 6.00.6000.16674" name=GENERATOR></HEAD> <BODY>An activity may be active, but cannot have a classifier behavior.</BODY></HTML> OCL self.classifierBehavior->isEmpty() Top-level structured nodes in the activity. Nodes coordinated by the activity. If true, this activity must not make any changes to variables outside the activity or to objects. (This is an assertion, not an executable property. It may be used by an execution engine to optimize model execution. If the assertion is violated by the action, then the model is ill-formed.) The default is false (an activity may make nonlocal changes). Edges expressing flow between nodes of the activity. import fUML.Syntax.Activities.IntermediateActivities.*; import fUML.Syntax.Actions.BasicActions.*; Nodes immediately contained in the group. Activity immediately containing the node. If true, then the actions in the node execute in isolation from actions outside the node. Edges immediately contained in the structured node. <HTML><HEAD> <META content="MSHTML 6.00.6000.16674" name=GENERATOR></HEAD> <BODY>no setupParts in fUML</BODY></HTML> OCL self.setupPart->isEmpty() If true, the test is performed before the first execution of the body. If false, the body is executed once before the test is performed. An output pin within the test fragment the value of which is examined after execution of the test to determine whether to execute the loop body. The set of nodes, edges, and designated value that compute a Boolean value to determine if another execution of the body will be performed. A list of output pins within the body fragment the values of which are moved to the loop variable pins after completion of execution of the body, before the next iteration of the loop begins or before the loop exits. A list of values that are moved into the loop variable pins before the first iteration of the loop. A nested activity fragment with a designated output pin that specifies the result of the test. A nested activity fragment that is executed if the test evaluates to true and the clause is chosen over any concurrent clauses that also evaluate to true. A set of clauses whose tests must all evaluate false before the current clause can be tested. A set of clauses which may not be tested unless the current clause tests false. An output pin within the test fragment the value of which is examined after execution of the test to determine whether the body should be executed. A list of output pins within the body fragment whose values are moved to the result pins of the containing conditional node after execution of the clause body. If true, the modeler asserts that at most one test will succeed. If true, the modeler asserts that at least one test will succeed. Set of clauses composing the conditional. A list of output pins that constitute the data flow outputs of the conditional. The executions are independent. They may be executed concurrently. The executions are dependent and must be executed one at a time, in order of the collection elements. A stream of collection elements flows into a single execution, in order of the collection elements. The expansion region for which the node is an output. The expansion region for which the node is an input. <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>Edges may not cross into or out of an expansion region.</BODY></HTML> OCL self.edge->forAll(self.node->includes(source) and self.node->includes(target)) <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>mode cannot be stream</BODY></HTML> OCL self.mode <> ExpansionKind::stream <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>An expansion region may not have output pins.</BODY></HTML> OCL self.output->isEmpty() The way in which the executions interact: parallel: all interactions are independent iterative: the interactions occur in order of the elements stream: a stream of values flows into a single execution An object node that accepts a separate element of the output collection during each of the multiple executions of the region. The values are formed into a collection that is available when the execution of the region is complete. An object node that holds a separate element of the input collection during each of the multiple executions of the region. <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>The target input pin must have a type that has a reception for the signal.</BODY></HTML> OCL self.target.type.oclAsType(Classifier).allFeatures()->select(oclIsKindOf(Reception))->exists(f:Feature|self.signal.conformsTo(f.oclAsType(Reception).signal)) The target object to which the signal is sent. The type of signal transmitted to the target object. If true, the call is synchronous and the caller waits for completion of the invoked behavior. If false, the call is asynchronous and the caller proceeds immediately and does not expect a return values. A list of output pins where the results of performing the invocation are placed. <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>isSynchronous must be true</BODY></HTML> OCL self.isSynchronous <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>The behavior may not be active. </BODY></HTML> OCL not self.behavior.isActive <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>If the behavior has a context, it must be the same as the context of the enclosing activity or a (direct or indirect) superclass of it.</BODY></HTML> OCL self.behavior.context->notEmpty() implies union(self.context.allParents())->includes(self.behavior.context) The invoked behavior. It must be capable of accepting and returning control. <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>isSynchronous must be true</BODY></HTML> OCL self.isSynchronous The operation to be invoked by the action execution. The target object to which the request is sent. The classifier of the target object is used to dynamically determine a behavior to invoke. This object constitutes the context of the execution of the operation. The ordered set of output pins connected to the Action. The action places its results onto pins in this set. The classifier that owns the behavior of which this action is a part. Structural feature to be read. Gives the input pin from which the object whose structural feature is to be read or written is obtained. Gives the pin on which an object is placed. Tells whether the two input objects are identical. Gives the pin on which an object is placed. Value specification to be evaluated. Gives the output pin on which the result is put. Value to be added or removed from the structural feature. Specifies whether to remove duplicates of the value in nonunique structural features. Specifies the position of an existing value to remove in ordered nonunique structural features. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited. The pin on which are put the objects participating in the association at the end not specified by the inputs. Gives the output pin on which the hosting object is placed. Gives the output pin on which the result is put. Data identifying one end of a link by the objects on its ends and qualifiers. Specifies whether the existing links emanating from the object on this end should be destroyed before creating a new link. Specifies where the new link should be inserted for ordered association ends, or where an existing link should be moved to. The type of the input is UnlimitedNatural, but the input cannot be zero. This pin is omitted for association ends that are not ordered. Input pin that provides the specified object for the given end. This pin is omitted if the link-end data specifies an 'open' end for reading. Association end for which this link-end data specifies values. Specifies whether to destroy duplicates of the value in nonunique association ends. Specifies the position of an existing link to be destroyed in ordered nonunique association ends. The type of the pin is UnlimitedNatural, but the value cannot be zero or unlimited. Association to be cleared. Gives the input pin from which is obtained the object whose participation in the association is to be cleared. Specifies ends of association and inputs. <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>The given classifier must be a class.</BODY></HTML> OCL self.classifier.oclIsKindOf(Class) Gives the output pin on which the result is put. Classifier to be instantiated. Specifies ends of association and inputs. Specifies whether links in which the object participates are destroyed along with the object. Specifies whether objects owned by the object are destroyed along with the object. The input pin providing the object to be destroyed. Specifies whether existing values of the structural feature of the object should be removed before adding the new value. Holds the object on which to start the owned behavior. <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>isSynchronous must be false.</BODY></HTML> OCL not self.isSynchronous Behavior that is applied to two elements of the input collection to produce a value that is the same type as elements of the collection. Gives the output pin on which the result is put. The collection to be reduced. Tells whether the order of the input collection should determine the order in which the behavior is applied to its elements. <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>The classifier must be a class.</BODY></HTML> OCL self.classifier.oclIsKindOf(Class) The runtime instances of the classifier. The classifier whose instances are to be retrieved. Indicates whether the classifier must directly classify the input object. The classifier against which the classification of the input object is tested. After termination of the action, will hold the result of the test. Holds the object whose classification is to be tested. <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>All the old and new classifiers must be classes.</BODY></HTML> OCL self.oldClassifier->forAll(oclIsKindOf(Class)) and self.newClassifier->forAll(oclIsKindOf(Class)) Specifies whether existing classifiers should be removed before adding the new classifiers. A set of classifiers to be removed from the classifiers of the object. Holds the object to be reclassified. <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY> <P>The context of the containing activity of the accept event action must be an active class. </P></BODY></HTML> An accept event action may not be contained directly or indirectly in the test part of a clause or loop node. OCL self.context.oclAsType(Class).isActive <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>All triggers must be for signal events.</BODY></HTML> OCL self.trigger.event->forAll(oclIsKindOf(SignalEvent)) <HTML><HEAD> <META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD> <BODY>The context class must have receptions for all triggering signals.</BODY></HTML> OCL let cls:Class = self.context.oclAsType(Class) in let classes:Bag(Class) = cls.allParents()->select(oclIsKindOf(Class))->collect(oclAsType(Class))->union(cls->asBag()) in classes.ownedReception.signal->includesAll(self.trigger.event->collect(oclAsType(SignalEvent)).signal) An accept event action may not be contained directly or indirectly in the test part of a clause or loop node. OCL self->closure(inStructuredNode.oclAsType(ActivityNode))->forAll(n | let s : StructuredActivityNode = n.inStructuredNode in s->notEmpty() implies (s.oclIsTypeOf(ConditionalNode) implies s.oclAsType(ConditionalNode).clause.test->excludes(n.oclAsType(ExecutableNode)) and s.oclIsTypeOf(LoopNode) implies s.oclAsType(LoopNode).test->excludes(n.oclAsType(ExecutableNode)))) Indicates whether there is a single output pin for the event, or multiple output pins for attributes of the event. Pins holding the received event objects or their attributes. Event objects may be copied in transmission, so identity might not be preserved. The type of events accepted by the action, as specified by triggers. For triggers with signal events, a signal of the specified type or any subtype of the specified signal type is accepted. METAMODEL CompositeStructure4fUML Excluded: redefinedPort Excluded: isService Changed: abstract classes are considered to compute provided and required Excluded: redefinedConnector ClockConstraint Clock These elements can be used by the user in the prescribed form: events can be associated with clocks that must have as clocktype the logicalclock defined in the semantics. Clockconstraint can be used between clocks for events and for relationship with clocks defined in the semantics.